package meituan;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * @Author Jun jie Yi
 * 2022/3/17 10:00
 */
public class Problem3 {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        //数据组数
        int T = Integer.parseInt(reader.readLine());
        for (int i = 0; i < T; i++) {
            //桌子的数目
            int N = Integer.parseInt(reader.readLine());//几桌
            //初始化每张桌子所座的人数
            char[] arr_N0 = reader.readLine().toCharArray();//每桌的人数
            int[] arr_N = new int[N];
            for (int j = 0; j < arr_N.length; j++) {
                arr_N[j] = arr_N0[j] - '0';
            }
            //进来人的个数
            int M = Integer.parseInt(reader.readLine());//几人
            //输入每个人的性别
            char[] arr_M = reader.readLine().toCharArray();
            getTableNumber(arr_N, arr_M, N, M);
        }
    }

    /**
     * @param arr_N 每张桌子的人数 0，1，2
     * @param arr_M 进来的人数标记男女
     * @return
     */
    public static void getTableNumber(int[] arr_N, char[] arr_M, int N, int M) {
        for (int i = 0; i < M; i++) {
            char gender = arr_M[i];
            if (gender == 'M') {
                int zero = -1, flag = 0;//记录第一个为 0 人的餐桌，标记是否存在 1 人桌
                for (int j = 0; j < N; j++) {
                    //当前餐桌的人数
                    int n = arr_N[j];
                    if (n == 1) {
                        arr_N[j]++;//将餐桌数 +1
                        System.out.println(j + 1);
                        flag = 1;
                        break;
                    }
                    if (zero == -1 && arr_N[j] == 0) {
                        zero = j;
                    }
                }
                //当没有 1 人餐桌的时候
                if (zero != -1 && flag == 0) {
                    arr_N[zero]++;
                    System.out.println(zero + 1);
                }
            } else if (gender == 'F') {
                int one = -1, flag = 0;//记录第一个为 1 人的餐桌，标记是否存在 0 人桌
                for (int j = 0; j < N; j++) {
                    //当前餐桌的人数
                    int n = arr_N[j];
                    if (n == 0) {
                        arr_N[j]++;//将餐桌数 +1
                        System.out.println(j + 1);
                        flag = 1;//存在
                        break;
                    }
                    if (one == -1 && arr_N[j] == 1) {
                        one = j;
                    }
                }
                //当没有 0 人餐桌的时候
                if (one != -1 && flag == 0) {
                    arr_N[one]++;
                    System.out.println(one + 1);
                }
            }
        }
    }
}
